<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="lib.css" type='text/css' />
<link rel="SHORTCUT ICON" href="../icons/pyfav.png" type="image/png" />
<link rel='start' href='../index.html' title='Python documentation Index' />
<link rel="first" href="lib.html" title='Python library Reference' />
<link rel='contents' href='contents.html' title="Contents" />
<link rel='index' href='genindex.html' title='Index' />
<link rel='last' href='about.html' title='About this document...' />
<link rel='help' href='about.html' title='About this document...' />
<link rel="next" href="module-copyreg.html" />
<link rel="prev" href="module-pickle.html" />
<link rel="parent" href="persistence.html" />
<link rel="next" href="module-copyreg.html" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name='aesop' content='information' />
<title>13.2 cPickle -- A faster pickle</title>
</head>
<body>
<div class="navigation">
<div id='top-navigation-panel' xml:id='top-navigation-panel'>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="13.1.7 Example"
  href="pickle-example.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="13. data Persistence"
  href="persistence.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="13.3 copy_reg  "
  href="module-copyreg.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="pickle-example.html">13.1.7 Example</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="persistence.html">13. Data Persistence</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-copyreg.html">13.3 copy_reg  </a>
</div>
<hr /></div>
</div>
<!--End of Navigation Panel-->

<h1><a name="SECTION0015200000000000000000">
13.2 <tt class="module">cPickle</tt> -- A faster <tt class="module">pickle</tt></a>
</h1>

<p>
<a name="module-cPickle"></a>

<p>
The <tt class="module">cPickle</tt> module supports serialization and
de-serialization of Python objects, providing an interface and
functionality nearly identical to the
<tt class="module"><a href="module-pickle.html">pickle</a></tt><a id='l2h-2479' xml:id='l2h-2479'></a> module.  There are several
differences, the most important being performance and subclassability.

<p>
First, <tt class="module">cPickle</tt> can be up to 1000 times faster than
<tt class="module">pickle</tt> because the former is implemented in C.  Second, in
the <tt class="module">cPickle</tt> module the callables <tt class="function">Pickler()</tt> and
<tt class="function">Unpickler()</tt> are functions, not classes.  This means that
you cannot use them to derive custom pickling and unpickling
subclasses.  Most applications have no need for this functionality and
should benefit from the greatly improved performance of the
<tt class="module">cPickle</tt> module.

<p>
The pickle data stream produced by <tt class="module">pickle</tt> and
<tt class="module">cPickle</tt> are identical, so it is possible to use
<tt class="module">pickle</tt> and <tt class="module">cPickle</tt> interchangeably with existing
pickles.<a name="tex2html118"
  href="#foot36728"><sup>13.10</sup></a>
<p>
There are additional minor differences in API between <tt class="module">cPickle</tt>
and <tt class="module">pickle</tt>, however for most applications, they are
interchangeable.  More documentation is provided in the
<tt class="module">pickle</tt> module documentation, which
includes a list of the documented differences.

<p>
<br><hr><h4>Footnotes</h4>
<dl>
<dt><a name="foot36728">...
pickles.</a><A
 href="module-cPickle.html#tex2html118"><sup>13.10</sup></a></dt>
<dd>Since the pickle data format is actually a tiny
stack-oriented programming language, and some freedom is taken in the
encodings of certain objects, it is possible that the two modules
produce different data streams for the same input objects.  However it
is guaranteed that they will always be able to read each other's
data streams.

</dd>
</dl>
<div class="navigation">
<div class='online-navigation'>
<p></p><hr />
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td class='online-navigation'><a rel="prev" title="13.1.7 Example"
  href="pickle-example.html"><img src='../icons/previous.png'
  border='0' height='32'  alt='Previous Page' width='32' /></a></td>
<td class='online-navigation'><a rel="parent" title="13. data Persistence"
  href="persistence.html"><img src='../icons/up.png'
  border='0' height='32'  alt='Up one Level' width='32' /></a></td>
<td class='online-navigation'><a rel="next" title="13.3 copy_reg  "
  href="module-copyreg.html"><img src='../icons/next.png'
  border='0' height='32'  alt='Next Page' width='32' /></a></td>
<td align="center" width="100%">Python Library Reference</td>
<td class='online-navigation'><a rel="contents" title="Table of Contents"
  href="contents.html"><img src='../icons/contents.png'
  border='0' height='32'  alt='Contents' width='32' /></a></td>
<td class='online-navigation'><a href="modindex.html" title="Module Index"><img src='../icons/modules.png'
  border='0' height='32'  alt='Module Index' width='32' /></a></td>
<td class='online-navigation'><a rel="index" title="Index"
  href="genindex.html"><img src='../icons/index.png'
  border='0' height='32'  alt='Index' width='32' /></a></td>
</tr></table>
<div class='online-navigation'>
<b class="navlabel">Previous:</b>
<a class="sectref" rel="prev" href="pickle-example.html">13.1.7 Example</a>
<b class="navlabel">Up:</b>
<a class="sectref" rel="parent" href="persistence.html">13. Data Persistence</a>
<b class="navlabel">Next:</b>
<a class="sectref" rel="next" href="module-copyreg.html">13.3 copy_reg  </a>
</div>
</div>
<hr />
<span class="release-info">Release 2.5.1, documentation updated on 18th April, 2007.</span>
</div>
<!--End of Navigation Panel-->
<address>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</address>
</body>
</html>
